home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / Python 1.1 / Mac / gestaltmodule.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-09-16  |  838 b   |  46 lines  |  [TEXT/KAHL]

  1. /* Macintosh Gestalt interface */
  2.  
  3. #include "allobjects.h"
  4. #include "modsupport.h"
  5.  
  6. #include <Types.h>
  7. #include <GestaltEqu.h>
  8.  
  9. static object *
  10. gestalt_gestalt(self, args)
  11.     object *self;
  12.     object *args;
  13. {
  14.     OSErr iErr;
  15.     char *str;
  16.     int size;
  17.     OSType selector;
  18.     long response;
  19.     if (!getargs(args, "s#", &str, &size))
  20.         return NULL;
  21.     if (size != 4) {
  22.         err_setstr(TypeError, "gestalt arg must be 4-char string");
  23.         return NULL;
  24.     }
  25.     selector = *(OSType*)str;
  26.     iErr = Gestalt ( selector, &response );
  27.     if (iErr != 0) {
  28.         char buf[100];
  29.         sprintf(buf, "Gestalt error code %d", iErr);
  30.         err_setstr(RuntimeError, buf);
  31.         return NULL;
  32.     }
  33.     return newintobject(response);
  34. }
  35.  
  36. static struct methodlist gestalt_methods[] = {
  37.     {"gestalt", gestalt_gestalt},
  38.     {NULL, NULL} /* Sentinel */
  39. };
  40.  
  41. void
  42. initgestalt()
  43. {
  44.     initmodule("gestalt", gestalt_methods);
  45. }
  46.